Instrumenting a website with dynamically generated code

ABSTRACT

A method, system, and medium are provided that relate to dynamically instrumenting a website. In general, an exemplary aspect of the invention includes storing configuration information in a datastore. A unique identifier, which corresponds to configuration information, is inserted within code of one or more web pages that relate to the website. When content is requested from the website, such as by a browser, the unique identifier can be used to retrieve corresponding configuration information. Using corresponding configuration information, instrumenting code may be generated and communicated, thereby instrumenting the website.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. Ser. No. 12/270,975 (filedNov. 14, 2008; issuing as U.S. Pat. No. 9,251,283 on Feb. 2, 2016),which is incorporated herein by reference in its entirety.

BACKGROUND

Websites often utilize instrumentation services, which perform variousfunctions in connection with website performance. Such services may beimplemented by code instructions located within web pages of thewebsite. Different services may be implemented using different codeinstructions. Whenever it is desired to change from one service to analternative service, code instructions within the website may need to bereplaced with different code instructions of the alternative service.Improperly modifying code instructions may result in poor website andinstrumentation service performance.

SUMMARY

Embodiments of our technology are defined by the claims below, not thissummary. A high-level overview of various aspects of the technology isprovided here for that reason, to provide an overview of the disclosure,and to introduce a selection of concepts that are further describedbelow in the detailed-description section. This summary is not intendedto identify key features or essential features of the claimed subjectmatter, nor is it intended to be used as an aid in isolation todetermine the scope of the claimed subject matter.

Our technology relates to instrumenting a website, such as by supplyinga code statement for implementing information-gathering features. Anexample of such a code statement includes instrumentation code forenabling instrumentation services that are utilized by a website.Configuration information is stored in a datastore. Configurationinformation might include data relating to the website in addition todata relating to an instrumentation service utilized by the website. Inresponse to a request for content of the website, the configurationinformation may be retrieved and utilized to generate instrumentationcode. The instrumentation code may then be communicated to enable theinstrumentation service utilized by the website.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Illustrative embodiments of our technology is described in detail belowwith reference to the attached drawing figures, which are incorporatedby reference herein and wherein:

FIG. 1 depicts an illustrative operating environment suitable forpracticing an embodiment of the technology;

FIG. 2 depicts a block diagram illustrating certain components of anillustrative computing device suitable for practicing an embodiment ofour technology;

FIG. 3 depicts a flow chart illustrating exemplary actions and steps inaccordance with an embodiment of our technology;

FIG. 4a-c depict an arrangement of source code of a web page inaccordance with an embodiment of our technology;

FIG. 5 depicts a block of code in accordance with an embodiment of ourtechnology; and

FIGS. 6-8 depict illustrative methods of instrumenting a website inaccordance with embodiments of our technology.

DETAILED DESCRIPTION

Embodiments of our technology relate to systems and methods forinstumenting a website. In a general exemplary embodiment, configurationinformation is maintained in a datastore. A unique identifier, whichcorresponds to the configuration information, is inserted within code ofone or more web pages that form a portion of the website. When contentis requested from the website, such as by a browser, the uniqueidentifier facilitates retrieval of configuration information needed todynamically generate code. Service-implementing code is dynamicallygenerated and communicated, thereby instrumenting the website in oneembodiment. Some of the wording and form of description is done soherein to meet applicable statutory requirements. Although the terms“step” and/or “block” or “module” etc. might be used to connotedifferent components of methods or systems employed, the terms shouldnot be interpreted as implying any particular order among or betweenvarious steps unless and except when the order of individual steps isexplicitly described.

Embodiments of our technology may be embodied as, among other things: amethod, system, or set of instructions embodied on one or morecomputer-readable media. Computer-readable media include both volatileand nonvolatile media, removable and nonremovable media, andcontemplates media readable by a database, a switch, and various othernetwork devices. By way of example, and not limitation,computer-readable media comprise media implemented in any method ortechnology for storing information. Examples of stored informationinclude computer-useable instructions, data structures, program modules,and other data representations. Media examples include, but are notlimited to information-delivery media, RAM, ROM, EEPROM, flash memory orother memory technology, CD-ROM, digital versatile discs (DVD),holographic media or other optical disc storage, magnetic cassettes,magnetic tape, magnetic disk storage, and other magnetic storagedevices. These technologies can store data momentarily, temporarily, orpermanently.

With initial reference to FIG. 1, an illustrative operating environmentsuitable for practicing an embodiment of the technology is provided andreferenced generally by the numeral 110. FIG. 1 shows a consolidationcomponent 120 connected to a variety of other elements including awebsite customer 122, a service provider 128, a client browser 130, acustomer webpage server 132, and a service browser 134. Consolidationcomponent 120 includes subcomponents including an instrumentation aspectmanager 138, a datastore 140 and a dynamic instrumentation provider 142.Consolidation component 120 may be a single computing device, whichincludes subcomponents, or may be a series of connected computingdevices that perform functions of subcomponents 138, 140, and 142.Moreover, sub-components 138, 140, and 142 may each include one or morecomputing devices or may all comprise a single computing device.

Several components of the operating environment of FIG. 1, as well asother components of embodiments of the technology, might include one ormore computing devices. Therefore, a general overview of an exemplarycomputing device will now be described in reference to FIG. 2. In FIG.2, a diagrammatic block diagram of computing device 202 is provided,which device might take the form of a conventional computer as well as aconsumer electronics device, such as an Internet-connected watch, mobilephone, and the like. Computing device 202 may take on a variety offorms, including, for example, a computing device such as a gamingconsole, a client computer, a server computer, variations thereof suchas laptop computers and palm-top computers, and in some embodimentsdevices such as PDAs and smart phones. As shown in FIG. 2, a bus 210couples one or more memory components 212 to one or more processors 214,various presentation components 216, input/output ports 218,input/output components 220, and at least one power supply 222. Otherdevices including lower level aspects of the shown devices are not shownso as to not obscure the technology.

Memory components 212 include things such as a hard drive, volatilememory (such as RAM), buffers, and the like. The one or more processors214 control overall data communications throughout a computing device.Illustrative presentation components 216 include a video card as well asa monitor or other presentation device. Input/output ports 218 provideconnectivity to peripheral components such as printers, digital cameras,and the like. Actual input/output components may be things like printersand the like. A power supply 222 provides power to run computing device202. Not all of the components shown in FIG. 2 need to be present inorder to make up a computing device but are shown for illustrativepurposes in connection with describing an embodiment of the technology.

Although the various blocks of FIG. 2 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clearand, metaphorically, the lines would more accurately be grey and fuzzy.For example, one may consider a presentation component such as a displaydevice to be an I/O component. Also, processors have memory. Werecognize that such is the nature of the art and reiterate that thediagram of FIG. 2 is merely illustrative of an exemplary computingdevice that can be used in connection with one or more embodiments ofour technology.

Computing device 202 typically includes a variety of computer-readablemedia. By way of example, and not limitation, computer-readable mediamay comprise Random Access Memory (RAM); Read Only Memory (ROM);Electronically Erasable Programmable Read Only Memory (EEPROM); flashmemory or other memory technologies; CDROM, digital versatile disks(DVD) or other optical or holographic media; magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices;carrier wave; or any other medium that can be used to encode desiredinformation and be accessed by computing device 202.

Returning now to FIG. 1, the operating environment shown is one in whicha website is instrumented to enable services. As used herein the terms“instrument,” “instrumenting,” and “instrumented,” describe supplyingcode, which may be placed at strategic locations within code.Accordingly, “instrumenting a website” describes supplying a websitewith code that may be strategically placed within code of the website.In exemplary embodiments, code supplied to a website is useful tofacilitate operation of instrumentation services on a website.“Services” include applications that enable a variety of capabilities,such as instrumentation, and are performed by one or more serviceproviders. As used herein, the phrase “instrumentation aspects”describes services that provide instrumentation capabilities. Forexample, instrumentation aspects include advertising services and/oranalytics services. “Advertising services” perform a variety offunctions including displaying advertisements on a web page and trackingperformance of the advertisements. “Analytic services” perform a varietyof functions including monitoring and analyzing traffic and othervisitation metrics of a web page. Advertising services and analyticservices are merely examples of services, and embodiments of ourtechnology are broad enough to include instrumenting for other servicesas well.

In an aspect of the technology, consolidation component 120 registersinstrumentation aspects of service provider 128. Registering includesreceiving and storing information that is related to eachinstrumentation aspect of the service provider 128. Although wesometimes refer to certain items in the singular, we do not mean toimply that only one of such items is implicated. For example, “serviceprovider” is used singularly for illustrative purposes in FIG. 1 andthroughout this description; however, in reality the consolidationcomponent 120 may register instrumentation aspects from multiple serviceproviders. This concept is applicable to a great many items throughoutthis disclosure. Qualifying terms is persistently avoided so as toenhance readability of this description but not to substantivelyindicate singularity of items. Other examples illustratively includewebsite customer 122, customer webpage server 132, client browser 130,service browser 134, instrumentation aspect manager 138, datastore 140,and dynamic instrumentation provider 142, all of which may include oneor more of the respective component.

In an embodiment, registering instrumentation aspects includes receivinginstrumentation details from service provider 128. The instrumentationdetails describe data that identifies and defines instrumentationaspects provided by service provider 128. Instrumentation details assista computing device in executing a service. Instrumentation detailsinclude, for example, a name and description of a particular service(e.g., “XYZ Analytics for tracking website traffic). Instrumentationdetails may include definitional, template-related, and schematicinformation necessary for a service to be properly implemented, e.g.,entry points, data/function points for population, validation rules forAPIs, etc.

Instrumentation details of various service providers include similartypes of information; however, in the absence of standardization, theformat and content of the information might vary to a great extentbetween service providers. Because switching from one instrumentationaspect to another might require modifying code based on correspondinginstrumentation details, a lack of standardization can createopportunities for instrumenting error as there is more content tomodify. In an exemplary embodiment, consolidation component 120 receivesinstrumentation details from service provider 128 by way of aninstrumentation template, which describes a predefined format that canbe populated with instrumentation details. Referring to FIG. 1,consolidation component 120 communicates to service provider 128 aninstrumentation template 152. Consolidation component 120 may receivefrom service provider 128 instrumentation details 150 in a formatconsistent with the instrumentation template 152. In one embodiment,consolidation component 120 provides service provider 128 with anXML/XSD template. Consolidation component 120 receives instrumentationdetails 150 from service provider 128 by way of an XML/XSD template.

In one aspect of the technology, consolidation component 120 receivesmultiple sets of instrumentation details in a format consistent withinstrumentation template 152. With consistently formattedinstrumentation details, consolidation component 120 is enabled to moreefficiently process updates across multiple sets of instrumentationdetails. Instrumentation template 152 creates a common set of conceptsbetween service providers, as well as, a common method for exposing dataand APIs. With common metadata, instrumentation details can beauto-filled with updated data.

In a further embodiment, consolidation component 120 includes aninstrumentation aspect manager 138. Instrumentation aspect manager 138serves as a subcomponent of consolidation component 120 and functions tointeract with service provider 128 during registration ofinstrumentation aspects. For example instrumentation aspect manager 138collects and stores instrumentation details 150. Instrumentation aspectmanager 138 also provides centralized storage of instrumentation detailsof various instrumentation aspects. Centralized storage facilitatesefficient and standardized presentation of instrumentation aspects forselection by website customer 122.

In a further aspect of the technology, consolidation component 120interacts with website customer 122 to facilitate selection ofinstrumentation aspects of service provider 128. Website customer 122may adopt instrumentation aspects for use with a website of websitecustomer 122. Examples of instrumentation aspects that website customer122 may adopt include advertising services and analytics services. In anillustrative aspect, the website of website customer 122 is maintainedon customer webpage server 132.

Consolidation component 120 presents registered instrumentation aspects154 to website customer 122 for selection. In an embodiment, registeredinstrumentation aspects 154 are presented and selected through a userinterface. The user interface allows website customers 122 to viewregistered instrumentation aspects 154 in a standardized format and toselect registered instrumentation aspects 154 for application to awebsite. For example, website customer 122 might select aninstrumentation aspect, which corresponds to instrumentation details150.

In another embodiment, through the user interface, website customer 122inputs, and consolidation component 120 receives, website customerparameters 156. Website customer parameters 156 are useful to generatecode for enabling instrumentation aspects on a website of websitecustomer 122. Examples of website customer parameters 156 include website URL, web pages associated with the website, code blocks with uniqueidentifiers within web pages, groupings of code blocks, identificationof services selected, caching rules, and experimentation groups.

Once consolidation component 120 has received website customerparameters 156, including a selection of instrumentation aspects, in anexemplary embodiment consolidation component 120 groups together websitecustomer parameters 156 and instrumentation details of instrumentationaspects selected by the website customer 122. For example, if websitecustomer 122 selected an instrumentation aspect having instrumentationdetails 150, website customer parameters 156 would be grouped withinstrumentation details 150.

In another aspect, consolidation component 120 assigns and communicatesto website customer 122 one or more unique identifiers 158. Uniqueidentifiers 158 might serve various functions including identifying acustomer website and identifying a web page of the customer website.Unique identifiers might also identify customer parameters 156 andinstrumentation details of instrumentation aspects selected by websitecustomer 122. In other aspects, unique identifiers identify a locationon a webpage. Moreover, unique identifiers might provide additionalsource necessary to generate code related to instrumentation aspects.

Both the quantity and content of the one or more unique identifiersassigned to website customer 122 might depend on instrumentation aspectsselected. For example, if an instrumentation aspect, which appliesuniformly across one or more web pages within a website, is selected, itmight be appropriate to assign only one unique identifier for placementat a location within each of the one or more web pages. In such anembodiment the unique identifier might include a short string of text,which functions to identify the customer website and/or web pages andidentify website customer parameters 156 and instrumentation details. Anexample of a single unique identifier is shown in FIG. 4a and identifiedby the numeral 158. Referring to FIG. 4b , a set of unique identifiers158 and 458 might be assigned, wherein unique identifier 158 identifiesthe customer website and/or web pages and unique identifier 458identifies website customer parameters and instrumentation detailsassociated with the selected instrumentation aspect. Referring to FIG.4c , in a further example, if several different instrumentation aspectsare selected for placement at different locations within one web page,it might be appropriate to assign multiple unique identifiers 158, 458,and 459 for separate placement within the web page. In such anembodiment the multiple unique identifiers 158, 458, and 459 might eachinclude a unique string of text for carrying out a different function.For example, unique identifier 158 might identify the customer websiteand/or webpage, unique identifier 458 might identify website customerparameters and instrumentation details pertaining to one instrumentationaspect (e.g., analytics), and unique identifier 459 might identifywebsite customer parameters and instrumentation details pertaining to analternative instrumentation aspect (e.g., advertising). Uniqueidentifier 459 might also identify a location on the web page andprovide additional information specific to static areas in the web page.

In one aspect of the technology, each website customer is assigned oneor more unique identifiers that are distinct from all other uniqueidentifiers assigned to other website customers. As previouslydescribed, consolidation component 120 includes an instrumentationaspect manager 138, which stores implementation details 150 forregistered instrumentation aspects. In another aspect, instrumentationaspect manager 138 interacts with website customer 122 to facilitateselection of instrumentation aspects as described hereinabove.

In one embodiment of the technology, website customer parameters 156,instrumentation details 150 for selected instrumentation aspects, andone or more assigned unique identifiers 158 are stored in a manner thatenables near simultaneous retrieval. Collectively, these categories ofdata comprise configuration information for website customer 122.“Configuration information” describes information necessary to generateinstrumentation code. In one aspect, configuration information is storedin a datastore 140 of consolidation component 120. For example,datastore 140 might include a SQL database.

In order to retrieve configuration information and facilitate generationof instrumentation code, website customer 122 communicates one or moreunique identifiers 158, which have been assigned to website customer122, to consolidation component 120 in various ways. In exemplaryembodiments, referring to FIGS. 4a -4 c, unique identifiers 158, 458,and 459 are inserted within source code 420 of a web page 422 for whichthe website customer 122 has selected services. Unique identifiers 158,458, and 459 include a string of text and are inserted within aninstrumentation tag 426. Instrumentation tag 426 might be a URL, which,in an exemplary embodiment, includes an address for consolidationcomponent 120. Instrumentation tag 426 is inserted within source code420 of web page 422. Instrumentation tag 426 might replaceinstrumentation code for implementing a service. In embodiments in whichthe instrumentation tag 426 includes an address for the consolidationcomponent 120, when a browser requests content of the web page 422, theinstrumentation tag 426, and unique identifiers 158, 458, and 459inserted therein, are communicated to consolidation component 120.

Web pages might be coded in a variety of ways to include one or moreunique identifiers. In one embodiment, the manner in which a web page iscoded depends on instrumentation aspects selected for application to theweb page. For example, where a website customer has selected onlygeneral traffic-measuring analytics to evaluate each web page within awebsite, each web page might be coded once with the same uniqueidentifier 158, such as shown in FIGS. 4a and 4b . In FIG. 4a , uniqueidentifier 158 might identify both the customer website/web page andconfiguration information related to website customer 122, and uniqueidentifier 158 might be coded into multiple web pages. In FIG. 4b ,unique identifier 158 might identify the customer website/web page, andunique identifier 458 might identify configuration information. Inanother example, where a website customer has selected a variety ofinstrumentation aspects for application at different locations on a webpage (e.g., banner ads and/or skyscraper ads), each unique identifierwithin a set of varying unique identifiers might be coded into differentlocations within the web page, as shown in FIG. 4c . In such an example,a unique identifier might only be coded into one web page to bestfacilitate a related instrumentation aspect. For example, if uniqueidentifier 459 relates to advertising instrumentation for a banner ad,unique identifier 459 might only be coded into one specific locationwithin web page 422. Upon receipt of unique identifier 459,consolidation component can retrieve related and necessary configurationinformation and dynamically generate browser-renderable code forspecific placement on web page 422.

Referring to FIG. 1, in an operating environment for practicing thetechnology, consolidation component 120, client browser 130, customerwebpage server 132, and service browser 134 are networked. In oneembodiment, those components are networked by way of the Internet 136.In aspects of the technology, one or more unique identifiers 158 ofwebsite customer 122 are communicated to consolidation component 120 toretrieve configuration information of website customer 122 stored in thedatastore 140. For example, referring to FIGS. 1 and 4, client browser130 requests content from web page 422 of website customer 122 bycommunicating with customer web page server 132. Customer web pageserver 132 communicates data to client browser 130, such as source code420 containing instrumentation tag 426. Because instrumentation tag 426includes unique identifier 158 and an address for consolidationcomponent 120, unique identifier 158 is communicated to consolidationcomponent 120. Similar aspects of the technology, shown in FIG. 3,include client browser 130 requesting content from a web page server atstep 314, and communicating unique identifier(s) 158 to consolidationcomponent 120 at step 318.

In an exemplary embodiment, consolidation component 120 includes adynamic instrumentation provider 142. Referring to FIG. 1, dynamicinstrumentation provider 142 is connected to datastore 140 ofconsolidation component 120. Dynamic instrumentation provider 142functions to receive unique identifier(s) 158, retrieve configurationinformation, and dynamically generate instrumentation code.

Returning to FIG. 3, after receiving the unique identifier(s) 158, atstep 322 dynamic instrumentation provider 142 references datastore 140.Datastore 140 stores configuration information 310 that is identifiableby unique identifier(s) 158. When dynamic instrumentation provider 142references datastore 140 using unique identifier(s) 158, datastore 140communicates 324 configuration information 310 related to uniqueidentifier(s) 158 to dynamic instrumentation provider 142.

Dynamic instrumentation provider 142 utilizes configuration information310 to dynamically generate browser-renderable code at step 326. Inanother aspect, dynamic instrumentation provider might also use uniquelyidentified static code 458 to dynamically generate browser-renderablecode 459. Where a set of static blocks of code are simultaneouslyreceived as a result of an interaction with one web page, dynamicinstrumentation provider may dynamically generate multiple sets ofdynamic instrumentation. “Browser-renderable code” describes blocks ofcode for enabling instrumentation aspects selected for a website. Forexample, browser-renderable code may include JavaScript Source, StaticHTML/IFRAME Source, and/or Silverlight Assembly. FIG. 5 illustrates anexample of a block of code 510. In aspects of the technology,information provided in instrumentation details 150 is leveraged todynamically build code segments that reference appropriate resources ofthe service provider 128. In addition, configuration information is usedto dynamically construct appropriate API calls to submit data. At step330 of FIG. 3, dynamically generated code is communicated to clientbrowser 130 by way of a script 328. Client browser 130, having receivedcode for enabling services selected for the web page that was requestedat step 314, renders the instrumentation, and appropriate service callsare communicated at step 334.

As shown in FIG. 6, in an exemplary embodiment, the technology comprisesa method (indicated generally by numeral 610) of instrumenting awebsite. The method 610 includes at step 612, incident to a browserinteracting with an instrumentation tag within source code of a webpage, receiving a unique identifier that is that is assigned to thewebsite. In addition, at step 614, the unique identifier is used toretrieve configuration information, which describes instrumentationaspects that are to be implemented by way of the web page, wherein theconfiguration information is stored in a datastore. At step 616 a scriptis dynamically generated that will facilitate the instrumentationaspects. Step 618 includes communicating the script to the browser,thereby resulting in a modification of the source code to include thescript, wherein the script, when activated, implements theinstrumentation aspects.

FIG. 7 illustrates another exemplary method (indicated generally bynumeral 710) of instrumenting a website with a script for implementing aservice of a service provider. The method 710 includes, at step 712,receiving instrumentation details from the service provider, wherein theinstrumentation details define aspects of the service. In addition, atstep 714 the method 710 includes receiving a selection of the servicefor operation within the website, wherein the website comprises websiteparameters. Step 716 includes associating the parameters and theinstrumentation details with a unique identifier, wherein the uniqueidentifier is for inclusion within an instrumentation tag, which isinsertable within source code of a web page of the website. At step 718,incident to a browser interacting with the instrumentation tag withinthe source code, the unique identifier is received. Step 720 includesretrieving configuration information, which is based on the parametersand the instrumentation details. Finally, at step 722, the script isdynamically generated and communicated to the browser, thereby resultingin a modification of the source code to include the script, wherein thescript, when activated, implements the service.

FIG. 8 illustrates another exemplary embodiment of our technologyincluding a method (generally identified by numeral 810) forinstrumenting a website with a script. In step 812 of the method,content is requested from the website having an instrumentation tagwithin source code of a web page of the website. Step 814 includes,incident to interacting with the instrumentation tag, communicating aunique identifier that is assigned to the website. In addition, step 816includes receiving a script based on instrumentation aspectscorresponding to the website, wherein the instrumentation aspectscomprise one or more of analytic services and advertising services.Furthermore, at step 818 the source code of the web page is modified toinclude the script. Finally, step 820 includes implementing theinstrumentation aspects by communicating service calls to one or moreservice providers of the instrumentation aspects.

In aspects of the technology, instrumentation tasks associated withadopting and changing services are largely removed from theresponsibility of website customer 122 and are borne by theconsolidation component 120. Website customer 122 interacts with theconsolidation component 120 user interface to select or modify servicesfor application to a website. In turn, the consolidation component 120may create or update configuration information for the website customer.Upon receipt of unique identifier 158 for website customer 122, theconsolidation component 120 is prepared to immediatelydynamically-generate instrumentation code consistent with newly createdor updated configuration information.

In other aspects of the technology, when service providers need toupdate instrumentation details, instead of updating each individual webpage that utilizes corresponding services, the service provider onlyupdates instrumentation details once through the consolidationcomponent. In-turn, the consolidation component may update configurationinformation for generating instrumentation code.

In other embodiments, the consolidation component 120 facilitates aone-to-many instrumentation relationship. For example, website customer122 only needs to strategically place the unique identifier to enablethe consolidation component 120 to generate multiple blocks of code,which may initiate multiple service calls.

It will be understood that certain features and subcombinations are ofutility and may be employed without reference to other features andsubcombinations and are contemplated within the scope of the claims. Notall steps listed in the various figures need be carried out in thespecific order described.

The invention claimed is:
 1. One or more computer-readable media havingcomputer-executable instructions embodied thereon for performing amethod of instrumenting a website, the method comprising: incident to abrowser interacting with an instrumentation tag within source code of aweb page of the website, receiving a unique identifier that is assignedto the website; utilizing the unique identifier to retrieveconfiguration information that describes instrumentation aspects thatare to be implemented by way of the web page, wherein the configurationinformation is stored in a datastore; dynamically generating a scriptthat will facilitate the instrumentation aspects; and communicating thescript to the browser, thereby resulting in a modification of the sourcecode to include the script, wherein the script, when activated,implements the instrumentation aspects.
 2. The media of claim 1 whereinthe instrumentation tag comprises a URL.
 3. The media of claim 1 whereinthe unique identifier is received by way of the instrumentation tag. 4.The media of claim 1 wherein the unique identifier is for one or more ofidentifying the website, identifying the web page, identifying alocation on the web page, and identifying configuration information. 5.The media of claim 1 wherein, incident to the browser interacting withthe instrumentation tag within source code of the web page of thewebsite, a plurality of unique identifiers assigned to the website arereceived.
 6. The media of claim 1 wherein configuration informationcomprises parameters of the corresponding website and instrumentationdetails describing the instrumentation aspects.
 7. The media of claim 1wherein the instrumentation aspects comprise one or more of analyticservices and advertising services.
 8. The media of claim 1 wherein thescript provides instructions for implementing an instrumentation aspect.9. The media of claim 1 wherein the script is dynamically generatedbased on the configuration information.
 10. One or morecomputer-readable media having computer-executable instructions embodiedthereon for performing a method of instrumenting a website with a scriptfor implementing a service of a service provider, the method comprising:receiving instrumentation details from the service provider, wherein theinstrumentation details define aspects of the service; receiving aselection of the service for operation within the website, wherein thewebsite comprises website parameters; associating the website parametersand the instrumentation details with a unique identifier, wherein theunique identifier is for inclusion within an instrumentation tag, whichis insertable within source code of a web page of the website; incidentto a browser interacting with the instrumentation tag within the sourcecode, receiving the unique identifier; retrieving configurationinformation, which is based on the website parameters and theinstrumentation details; and dynamically generating the script andcommunicating the script to the browser, thereby resulting in amodification of the source code to include the script, wherein thescript, when activated, implements the service.
 11. The media of claim10 wherein the instrumentation details are received in a standardizedformat.
 12. The media of claim 11 wherein the standardized formatcomprises a pre-defined template.
 13. The media of claim 12 wherein thepredefined template comprises an XML/XSD template.
 14. The media ofclaim 10 wherein the instrumentation details comprise one or more of anAPI, validation rules, entry points, and data points for population. 15.The media of claim 10 wherein receiving a selection is facilitatedthrough a user interface, wherein the user interface presents theservice to a user for selection.
 16. The media of claim 10 whereinreceiving a selection of the service further comprises modifyingservices, which are already operating on the website.
 17. The media ofclaim 10 wherein the instrumentation tag replaced instrumentation codewithin the source code.
 18. The media of claim 17 wherein theinstrumentation code is related to the script.
 19. One or morecomputer-readable media having computer-executable instructions embodiedthereon for performing a method of instrumenting a website with ascript, the method comprising: requesting content from the websitehaving an instrumentation tag within source code of a web page of thewebsite; incident to interacting with the instrumentation tag,communicating a unique identifier that that is assigned to the website;receiving a script based on instrumentation aspects corresponding to thewebsite, wherein the instrumentation aspects comprise one or more ofanalytic services and advertising services; modifying the source code ofthe web page to include the script; and implementing the instrumentationaspects by communicating service calls to one or more service providersof the instrumentation aspects.
 20. The media of claim 19 wherein theinstrumentation tag includes the unique identifier.